﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lambda
{
    public static class Combinators
    {
        public static Func<dynamic, Func<dynamic, Func<dynamic, dynamic>>> S = new Func<dynamic, Func<dynamic, Func<dynamic, dynamic>>>(x => y => z => x(z)(y(z)));
        public static Func<dynamic, Func<dynamic, dynamic>> K = new Func<dynamic, Func<dynamic, dynamic>>(x => y => x);
        public static Func<dynamic, dynamic> I = new Func<dynamic, dynamic>(x => x);
    }
}
